const { createCanvas } = require('canvas');
const Category = require('../models/category.model');

class DefaultImageService {
  static async generateDefaultImage(medicine) {
    try {
      // 创建画布
      const canvas = createCanvas(400, 400);
      const ctx = canvas.getContext('2d');

      // 设置背景色
      ctx.fillStyle = '#f0f0f0';
      ctx.fillRect(0, 0, 400, 400);

      // 绘制边框
      ctx.strokeStyle = '#e0e0e0';
      ctx.lineWidth = 2;
      ctx.strokeRect(10, 10, 380, 380);

      // 设置文字样式
      ctx.fillStyle = '#333333';
      ctx.textAlign = 'center';

      // 绘制药品名称
      ctx.font = 'bold 28px Arial';
      ctx.fillText(medicine.name, 200, 160, 360);

      // 获取分类名称
      if (medicine.categoryId) {
        const category = await Category.findById(medicine.categoryId);
        if (category) {
          ctx.font = '20px Arial';
          ctx.fillText(category.name, 200, 200, 360);
        }
      }

      // 绘制药品规格
      if (medicine.specification) {
        ctx.font = '18px Arial';
        ctx.fillText(medicine.specification, 200, 240, 360);
      }

      // 将画布转换为Base64图片URL
      const dataUrl = canvas.toDataURL('image/png');

      return dataUrl;
    } catch (error) {
      console.error('生成默认图片失败:', error);
      return '';
    }
  }
}

module.exports = DefaultImageService;